#include <unistd.h>

int main()
{
    //假如要将程序替换为/usr/bin路径下的ls指令，并加上选项-l
    //并且对于支持修改环境变量的函数，修改环境变量PATH
    
    char* const argv[] = {"ls", "-l", NULL};
    char* const envp[] = {"PATH=/usr/bin", NULL};

    execl("/usr/bin/ls", "ls", "-l", NULL); // 带l要一个个传入命令行参数

    execlp("ls", "ls", "-l", "NULL"); // 带p不用传路径

    execle("usr/bin/ls", "ls", "-l", NULL, envp); // 带e要传环境变量表

    execv("/usr/bin/ls", argv); // 带v要用指针数组传入命令行参数

    execvp("ls", argv); // 带p不用传路径；带v用指针数组传命令行参数

    execvpe("ls", argv, envp); // 带p不用传路径；带v用指针数组传命令行参数；带e要传环境变量表

    execve("ls", argv, envp);
    return 0;
}
